package com.taoyeshu.modules.sys.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.taoyeshu.modules.sys.entity.Resource;
import com.taoyeshu.modules.sys.mapper.ResourceMapper;

@Transactional(readOnly = true)
@Service("resourceService")
public class ResourceService {

	@Autowired
	private ResourceMapper resourceMapper;

	/*
	 * 新增
	 */
	@Transactional(readOnly = false)
	public int save(Resource resource) {
		resource.setState(1);
		return resourceMapper.save(resource);
	}

	/*
	 * 删除
	 */
	@Transactional(readOnly = false)
	public void delete(Resource resource) {
		resource.setState(2);
		resourceMapper.update(resource);
	}

	/*
	 * 修改
	 */
	@Transactional(readOnly = false)
	public void update(Resource resource) {
		resourceMapper.update(resource);
	}

	/**
	 * 
	 * @描述:根据用户名获取相应资源
	 * @方法名称 :queryByUserId
	 * @作者 :HuanGe
	 * @创建日期 :2015年9月27日 下午5:30:46
	 * @return
	 *
	 */
	public List<Resource> queryByUserId(Integer userId) {
		return resourceMapper.queryByUserId(userId);
	}

	/**
	 * 
	 * @描述:根据用户名获取相应菜单
	 * @方法名称 :queryByUserId
	 * @作者 :HuanGe
	 * @创建日期 :2015年9月27日 下午5:30:46
	 * @return
	 *
	 */
	public List<Resource> queryMenuByUserId(Integer userId) {
		return resourceMapper.queryMenuByUserId(userId);
	}

	/**
	 * 
	 * @描述:查询所有状态正常的资源
	 * @方法名称 :queryAll
	 * @作者 :HuanGe
	 * @创建日期 :2015年10月5日 下午10:41:44
	 *
	 */
	public List<Resource> queryAll() {
		return resourceMapper.queryAll();
	}

	/**
	 * 
	 * @描述:通过id查询资源
	 * @方法名称 :getById
	 * @作者 :HuanGe
	 * @创建日期 :2015年10月5日 下午10:42:29
	 * @param id
	 *
	 */
	public Resource getById(Integer id) {
		return resourceMapper.getById(id);
	}

	/**
	 * 
	 * @描述:通过parentId获取资源
	 * @方法名称 :queryByParentId
	 * @作者 :HuanGe
	 * @创建日期 :2015年10月5日 下午10:42:42
	 * @param parentId
	 *
	 */
	public List<Resource> queryByParentId(Integer parentId) {
		if (parentId == null) {
			parentId = 0;
		}
		List<Resource> list = resourceMapper.queryByParentId(parentId);
		return list;
	}

	/**
	 * 
	 * @描述:查出所有非业务资源
	 * @方法名称 :queryParents
	 * @作者 :HuanGe
	 * @创建日期 :2015年10月5日 下午10:43:29
	 * @return
	 *
	 */
	public List<Resource> queryParents() {
		return resourceMapper.queryParents();
	}

	/**
	 * 
	 * @描述:根据角色id查询资源
	 * @方法名称 :queryByRoleId
	 * @作者 :HuanGe
	 * @创建日期 :2015年10月5日 下午10:44:50
	 * @param id
	 *
	 */
	public List<Resource> queryByRoleId(Integer id) {
		return resourceMapper.queryByRoleId(id);
	}
}
